package com.gome.boot.config.datasource;

import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Repository;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据源类型注解.
 * <br/>之所以添加Lazy注解依赖，是为了解决项目启动时循环依赖检测警告，主要出现在低版本spring与mybatis集成版本中.
 * <br/>对于较新版本的mybatis以及与spring集成的版本，则可以直接使用原生Repository注解.
 *
 * @author baoxiufeng
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Repository
@Lazy
public @interface MybatisRepository {

    String value() default "";
}
